home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  11.7 KB  |  328 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        FileTransfers.p
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1988-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT FileTransfers;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __FILETRANSFERS__}
  28. {$SETC __FILETRANSFERS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC FileTransfersIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __STANDARDFILE__}
  38. {$I StandardFile.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __CTBUTILITIES__}
  41. {$I CTBUtilities.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __CONNECTIONS__}
  44. {$I Connections.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __FILES__}
  47. {$I Files.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __TERMINALS__}
  50. {$I Terminals.p}
  51. {$ENDC}
  52.  
  53.  
  54. {$PUSH}
  55. {$ALIGN MAC68K}
  56. {$LibExport+}
  57.  
  58.  
  59. CONST
  60.     curFTVersion                = 2;                            {  current file transfer manager version }
  61.  
  62.                                                                 {  FTErr     }
  63.     ftGenericError                = -1;
  64.     ftNoErr                        = 0;
  65.     ftRejected                    = 1;
  66.     ftFailed                    = 2;
  67.     ftTimeOut                    = 3;
  68.     ftTooManyRetry                = 4;
  69.     ftNotEnoughDSpace            = 5;
  70.     ftRemoteCancel                = 6;
  71.     ftWrongFormat                = 7;
  72.     ftNoTools                    = 8;
  73.     ftUserCancel                = 9;
  74.     ftNotSupported                = 10;
  75.  
  76.  
  77. TYPE
  78.     FTErr                                = OSErr;
  79.  
  80. CONST
  81.     ftIsFTMode                    = $01;
  82.     ftNoMenus                    = $02;
  83.     ftQuiet                        = $04;
  84.     ftConfigChanged                = $10;
  85.     ftSucc                        = $80;
  86.  
  87.  
  88. TYPE
  89.     FTFlags                                = LONGINT;
  90.  
  91. CONST
  92.     ftSameCircuit                = $01;
  93.     ftSendDisable                = $02;
  94.     ftReceiveDisable            = $04;
  95.     ftTextOnly                    = $08;
  96.     ftNoStdFile                    = $10;
  97.     ftMultipleFileSend            = $20;
  98.  
  99.  
  100. TYPE
  101.     FTAttributes                        = INTEGER;
  102.  
  103. CONST
  104.     ftReceiving                    = 0;
  105.     ftTransmitting                = 1;
  106.     ftFullDuplex                = 2;                            {  (16) added ftFullDuplex bit. }
  107.  
  108.  
  109. TYPE
  110.     FTDirection                            = INTEGER;
  111.     FileTransferDefProcPtr = ProcPtr;  { FUNCTION FileTransferDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  112.  
  113. {    application routines type definitions }
  114.     FTRecordPtr = ^FTRecord;
  115.     FTPtr                                = ^FTRecord;
  116.     FTHandle                            = ^FTPtr;
  117.     FileTransferReadProcPtr = ProcPtr;  { FUNCTION FileTransferRead(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  118.  
  119.     FileTransferWriteProcPtr = ProcPtr;  { FUNCTION FileTransferWrite(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  120.  
  121.     FileTransferSendProcPtr = ProcPtr;  { FUNCTION FileTransferSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size; }
  122.  
  123.     FileTransferReceiveProcPtr = ProcPtr;  { FUNCTION FileTransferReceive(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size; }
  124.  
  125.     FileTransferEnvironsProcPtr = ProcPtr;  { FUNCTION FileTransferEnvirons(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr; }
  126.  
  127.     FileTransferNotificationProcPtr = ProcPtr;  { PROCEDURE FileTransferNotification(hFT: FTHandle; (CONST)VAR pFSSpec: FSSpec); }
  128.  
  129.     FileTransferChooseIdleProcPtr = ProcPtr;  { PROCEDURE FileTransferChooseIdle; }
  130.  
  131.     FileTransferDefUPP = UniversalProcPtr;
  132.     FileTransferReadUPP = UniversalProcPtr;
  133.     FileTransferWriteUPP = UniversalProcPtr;
  134.     FileTransferSendUPP = UniversalProcPtr;
  135.     FileTransferReceiveUPP = UniversalProcPtr;
  136.     FileTransferEnvironsUPP = UniversalProcPtr;
  137.     FileTransferNotificationUPP = UniversalProcPtr;
  138.     FileTransferChooseIdleUPP = UniversalProcPtr;
  139.     FTRecord = RECORD
  140.         procID:                    INTEGER;
  141.         flags:                    FTFlags;
  142.         errCode:                FTErr;
  143.         refCon:                    LONGINT;
  144.         userData:                LONGINT;
  145.         defProc:                FileTransferDefUPP;
  146.         config:                    Ptr;
  147.         oldConfig:                Ptr;
  148.         environsProc:            FileTransferEnvironsUPP;
  149.         reserved1:                LONGINT;
  150.         reserved2:                LONGINT;
  151.         ftPrivate:                Ptr;
  152.         sendProc:                FileTransferSendUPP;
  153.         recvProc:                FileTransferReceiveUPP;
  154.         writeProc:                FileTransferWriteUPP;
  155.         readProc:                FileTransferReadUPP;
  156.         owner:                    WindowPtr;
  157.         direction:                FTDirection;
  158.         theReply:                SFReply;
  159.         writePtr:                LONGINT;
  160.         readPtr:                LONGINT;
  161.         theBuf:                    Ptr;
  162.         bufSize:                LONGINT;
  163.         autoRec:                Str255;
  164.         attributes:                FTAttributes;
  165.     END;
  166.  
  167.  
  168. CONST
  169.                                                                 {  FTReadProc messages  }
  170.     ftReadOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  171.     ftReadDataFork                = 1;
  172.     ftReadRsrcFork                = 2;
  173.     ftReadAbort                    = 3;
  174.     ftReadComplete                = 4;
  175.     ftReadSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  176.     ftReadGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  177.  
  178.                                                                 {  FTWriteProc messages  }
  179.     ftWriteOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  180.     ftWriteDataFork                = 1;
  181.     ftWriteRsrcFork                = 2;
  182.     ftWriteAbort                = 3;
  183.     ftWriteComplete                = 4;
  184.     ftWriteFileInfo                = 5;
  185.     ftWriteSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  186.     ftWriteGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  187.  
  188.                                                                 {     fork flags  }
  189.     ftOpenDataFork                = 1;
  190.     ftOpenRsrcFork                = 2;
  191.  
  192.     uppFileTransferDefProcInfo = $0000FEF0;
  193.     uppFileTransferReadProcInfo = $00002FE0;
  194.     uppFileTransferWriteProcInfo = $00002FE0;
  195.     uppFileTransferSendProcInfo = $0000AFF0;
  196.     uppFileTransferReceiveProcInfo = $0000EFF0;
  197.     uppFileTransferEnvironsProcInfo = $000003E0;
  198.     uppFileTransferNotificationProcInfo = $000003C0;
  199.     uppFileTransferChooseIdleProcInfo = $00000000;
  200.  
  201. FUNCTION NewFileTransferDefProc(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  202.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  203.     INLINE $2E9F;
  204.     {$ENDC}
  205.  
  206. FUNCTION NewFileTransferReadProc(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $2E9F;
  209.     {$ENDC}
  210.  
  211. FUNCTION NewFileTransferWriteProc(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  212.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  213.     INLINE $2E9F;
  214.     {$ENDC}
  215.  
  216. FUNCTION NewFileTransferSendProc(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  217.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  218.     INLINE $2E9F;
  219.     {$ENDC}
  220.  
  221. FUNCTION NewFileTransferReceiveProc(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  222.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  223.     INLINE $2E9F;
  224.     {$ENDC}
  225.  
  226. FUNCTION NewFileTransferEnvironsProc(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  227.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  228.     INLINE $2E9F;
  229.     {$ENDC}
  230.  
  231. FUNCTION NewFileTransferNotificationProc(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  232.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  233.     INLINE $2E9F;
  234.     {$ENDC}
  235.  
  236. FUNCTION NewFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  237.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  238.     INLINE $2E9F;
  239.     {$ENDC}
  240.  
  241. FUNCTION CallFileTransferDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  242.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  243.     INLINE $205F, $4E90;
  244.     {$ENDC}
  245.  
  246. FUNCTION CallFileTransferReadProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $205F, $4E90;
  249.     {$ENDC}
  250.  
  251. FUNCTION CallFileTransferWriteProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  252.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  253.     INLINE $205F, $4E90;
  254.     {$ENDC}
  255.  
  256. FUNCTION CallFileTransferSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  257.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  258.     INLINE $205F, $4E90;
  259.     {$ENDC}
  260.  
  261. FUNCTION CallFileTransferReceiveProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  263.     INLINE $205F, $4E90;
  264.     {$ENDC}
  265.  
  266. FUNCTION CallFileTransferEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $205F, $4E90;
  269.     {$ENDC}
  270.  
  271. PROCEDURE CallFileTransferNotificationProc(hFT: FTHandle; {CONST}VAR pFSSpec: FSSpec; userRoutine: FileTransferNotificationUPP);
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $205F, $4E90;
  274.     {$ENDC}
  275.  
  276. PROCEDURE CallFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleUPP);
  277.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  278.     INLINE $205F, $4E90;
  279.     {$ENDC}
  280.  
  281. FUNCTION InitFT: FTErr;
  282. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  283. FUNCTION FTGetFTVersion: INTEGER;
  284. FUNCTION FTNew(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  285. PROCEDURE FTDispose(hFT: FTHandle);
  286. FUNCTION FTStart(hFT: FTHandle; direction: FTDirection; {CONST}VAR fileInfo: SFReply): FTErr;
  287. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  288. FUNCTION FTSend(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  289. FUNCTION FTReceive(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  290. PROCEDURE FTExec(hFT: FTHandle);
  291. PROCEDURE FTActivate(hFT: FTHandle; activate: BOOLEAN);
  292. PROCEDURE FTResume(hFT: FTHandle; resume: BOOLEAN);
  293. FUNCTION FTMenu(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  294. FUNCTION FTChoose(VAR hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  295. PROCEDURE FTEvent(hFT: FTHandle; {CONST}VAR theEvent: EventRecord);
  296. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  297. PROCEDURE FTDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  298. FUNCTION FTSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  299. PROCEDURE FTSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  300. FUNCTION FTSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  301. PROCEDURE FTSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  302. PROCEDURE FTSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  303. PROCEDURE FTSetupPostflight(procID: INTEGER);
  304. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  305. FUNCTION FTSetConfig(hFT: FTHandle; thePtr: UNIV Ptr): INTEGER;
  306. FUNCTION FTIntlToEnglish(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  307. {  (16) chenged OSErr to FTErr }
  308. FUNCTION FTEnglishToIntl(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  309. {  (16) chenged OSErr to FTErr }
  310. PROCEDURE FTGetToolName(procID: INTEGER; VAR name: Str255);
  311. FUNCTION FTGetProcID(name: ConstStr255Param): INTEGER;
  312. PROCEDURE FTSetRefCon(hFT: FTHandle; refCon: LONGINT);
  313. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  314. PROCEDURE FTSetUserData(hFT: FTHandle; userData: LONGINT);
  315. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  316. PROCEDURE FTGetErrorString(hFT: FTHandle; id: INTEGER; VAR errMsg: Str255);
  317.  
  318. {$ALIGN RESET}
  319. {$POP}
  320.  
  321. {$SETC UsingIncludes := FileTransfersIncludes}
  322.  
  323. {$ENDC} {__FILETRANSFERS__}
  324.  
  325. {$IFC NOT UsingIncludes}
  326.  END.
  327. {$ENDC}
  328.